package com.bjsxt.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.bjsxt.commons.pojo.BaizhanResult;
import com.bjsxt.mapper.TbItemCatMapper;
import com.bjsxt.pojo.ItemCatChild;
import com.bjsxt.pojo.TbItemCat;
import com.bjsxt.service.ItemCatService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.sql.Wrapper;
import java.util.ArrayList;
import java.util.List;

/**
 * @author coder_z
 * @date 2023/2/7
 **/
@Service
public class ItemCatServiceImpl implements ItemCatService {
    @Autowired
    private TbItemCatMapper tbItemCatMapper;
    @Override
    public BaizhanResult selectByParentId(long id) {
//      eq列名 值类型一定要对应
//      只查询正常的分类
        QueryWrapper<TbItemCat> wrapper = new QueryWrapper<TbItemCat>().eq("parent_id", id).eq("status", 1);
        List<TbItemCat> list = tbItemCatMapper.selectList(wrapper);
//      转换带有Leaf的类
        ArrayList<ItemCatChild> listResult = new ArrayList<>();
//      进行lamada转换
        list.forEach(cat->{
//            每次都对应child的实体类
            ItemCatChild child = new ItemCatChild();
//            使用spring工具类转换 第一个参数是源对象 第二个参数是目标对象
            BeanUtils.copyProperties(cat,child);
//            根据是否是父节点设置Leaf值
            child.setLeaf(!cat.getIsParent());
//            把child值设置到结果集中
            listResult.add(child);
        });
        return BaizhanResult.ok(listResult);
    }
    /**
     * 根据商品分类id回显信息
     * @param id
     * @return
     */
    @Override
    public BaizhanResult selectById(long id) {
        TbItemCat itemCat = tbItemCatMapper.selectById(id);
        if(itemCat!=null){
            return BaizhanResult.ok(itemCat);
        }
        return BaizhanResult.error("服务器端消息-没有查询到商品分类");
    }

}
